from celery import Celery
# 加载Django环境
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')
django.setup()


"""使用redis作为Celery的存储"""
# broker任务队列，存储要执行的任务
broker = 'redis://127.0.0.1:6379/1'  # 使用redis的db1数据库作为任务队列

# 结构存储，执行完的结果存在这里
backend = 'redis://127.0.0.1:6379/2'  # 使用redis的db2作为结构存储

# 实例化得到Celery对象
app = Celery(__name__, broker=broker, backend=backend, include=['celery_task.home_task'])
# include参数传一个字典，是要执行的任务的文件名


"""添加定时任务"""
# 设置时区为东八区
app.conf.timezone = 'Asia/Shanghai'
# 不使用UTC时间
app.conf.enable_utc = False

# 任务的定时配置
from datetime import timedelta
from celery.schedules import crontab

app.conf.beat_schedule = {
    'add-task': {
        'task': 'celery_task.home_task.banner_update',  # 配置任务
        'schedule': timedelta(seconds=10),  # 设置间隔时间
    }
}
# 既然是定时任务，那就要定时提交，在worker启动起来之后，在另一个终端窗口启动beat
# celery beat -A celery_task -l info
# 这样，就会按照设置的间隔时间向worker提交任务
